Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Використання макрокоманд та процедур. Ввід даних з клавіатури та вивід результату на екран.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Засоби системного програмування

Частина тексту файла

Міністерство освіти та науки України Національний університет «Львівська політехніка»  ЗВІТ З лабораторної роботи №9 З дисципліни: «Засоби системного програмування» На тему: «Використання макрокоманд та процедур. Ввід даних з клавіатури та вивід результату на екран.» ЗАВДАННЯ: 1. Створити *.exe програму, яка реалізовує обчислення, заданого варіантом виразу над даними, введеними в десятковій системі і результат виводить на екран в десятковій формі. Програма повинна складатися з трьох основних підпрограм: процедура вводу - забезпечує ввід даних з клавіатури в десятковій формі і їх перевід у двійкове значення ; процедура безпосередніх обчислень – здійснює всі необхідні арифметичні дії у двійковій системі; процедура виводу – забезпечує перевід війкового результату у десятковий формат та вивід на екран. Передача параметрів може здійснюватися довільним чином. Кожна з перерахованих процедур може містити довільну кількість додаткових підпрограм. Вхідні операнди А, В, С, D, E, F вважати беззнаковими і довжиною в байтах, згідно з індексу. К – константа, довжина якої визначається значенням(згідно варіанту). 2. Переконатися у правильності роботи кожної процедури зокрема та програми загалом. 3. Скласти звіт про виконану роботу з приведенням тексту програми та коментарів до неї. 4. Дати відповідь на контрольні запитання. № Вираз K  7 X=A4/B2-C1*(D1+E2-K) 717   Лістинг програми: DOSSEG .MODEL SMALL MY_MUL MACRO X,Y,Z mov z,0 mov z+2,0 MOV AX,X MUL Y MOV Z,AX MOV Z+2,DX MOV AX,X+2 MUL Y ADD Z+2,AX mov ax,Z mov dx,Z+2 ENDM .STACK 100h .DATA K EQU 29h A db 0h B dw 0h C dw 0h D dw 0h E db 0h Temp1 dw 00h,00h Temp2 dw 00h,00h Temp3 dw 00h Temp4 dw 00h Temp5 dw 00h,00h X dw 00h,00h X_Str db 10 dup (0) TempStr db 10 dup (0) TempBin dw 0,0 MaxLen dw 0 X_div2 dw 0,0 Y_div2 dw 0 MESSG_X DB 13,10,'X=A1*B2-A1*C2+D2/(E1+K) K=41 (29h)','$' MESSG_A DB 13,10,'A = ','$' MESSG_B DB 13,10,'B = ','$' MESSG_C DB 13,10,'C = ','$' MESSG_D DB 13,10,'D = ','$' MESSG_E DB 13,10,'E = ','$' MESSG_X1 DB 13,10,'X = ','$' erStr1 db 13,10,'Data not input_variable',13,10,'$' erStr2 db 13,10,'Incorrectly data ',13,10,'$' erStr2_1 db 13,10,' divide by zero ',13,10,'$' erStr3 db 13,10,'Data is too long ',13,10,'$' minus db '-$' Mult10 dw 1,0 my_z dw 0,0 Bool dw,0 .CODE mov ax,@data mov ds,ax call input call calculation call output mov ah,01 int 21h mov ah,4Ch int 21h input proc LEA DX,MESSG_X MOV AH,09 INT 21H LEA DX,MESSG_A MOV AH,09 INT 21H mov di,offset A mov MaxLen,3 mov cx,MaxLen call input_variable LEA DX,MESSG_B MOV AH,09 INT 21H mov di,offset B mov MaxLen,5 mov cx,MaxLen call input_variable LEA DX,MESSG_C MOV AH,09 INT 21H mov di,offset C mov MaxLen,5 mov cx,MaxLen call input_variable LEA DX,MESSG_D MOV AH,09 INT 21H mov di,offset D mov MaxLen,5 mov cx,MaxLen call input_variable LEA DX,MESSG_E MOV AH,09 INT 21H mov di,offset E mov MaxLen,3 mov cx,MaxLen call input_variable ret input endp calculation proc xor ax,ax xor bx,bx xor cx,cx xor dx,dx mov al,A cbw imul B mov Temp1+2,dx mov Temp1,ax ;temp1 <- ax (A1*B2) /* FF FF FF F4 */ mov al,A cbw imul C mov Temp2+2,dx mov Temp2,ax ;temp2 <- ax (A1*C2) /* 06 00 00 00*/ mov al,E cbw add ax,K mov Temp3,ax ;temp3 <- ax (E1+K1) /* 2A 00*/ mov ax,D cwd idiv Temp3 mov Temp4,ax ;Temp4 <- (D/Temp3) /* FF FF */ mov ax,Temp1 sub ax,Temp2 mov Temp5,ax mov ax,Temp1+2 sbb ax,Temp2+2 mov Temp5+2,ax ;Temp5 <- Temp1-Temp2 /* EE FF FF FF*/ mov ax,Temp5 add ax,Temp4 mov x,ax mov ax,Temp4 cwd adc Dx,Temp5+2 mov x+2,dx ;x <- Temp5+Temp4...
Антиботан аватар за замовчуванням

18.03.2013 13:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини